import java.util.Arrays;
import java.util.StringTokenizer;


class P10664_39643 {

	static String readLn() {
		String newLine = System.getProperty("line.separator");
		StringBuilder buffer = new StringBuilder();
		int car = -1;
		try {
			car = System.in.read();
			while ((car > 0) && (car != newLine.charAt(0))) {
				buffer.append((char) car);
				car = System.in.read();
			}
			if (car == newLine.charAt(0))
				System.in.skip(newLine.length() - 1);
		} catch (java.io.IOException e) {
			return (null);
		}
		if ((car < 0) && (buffer.length() == 0))
			return (null);
		return (buffer.toString());
	}
	
	public static void main(String[] args) {
		
		int cases = Integer.parseInt(readLn());
		StringBuilder sb = new StringBuilder();
		for (int k = 0; k < cases; k++) {
			StringTokenizer st = new StringTokenizer(readLn());
			
			int[] array = new int[st.countTokens()];
			
			int sum = 0;
			
			for (int n = 0; n < array.length; n++) {
				array[n] = Integer.parseInt(st.nextToken());
				sum += array[n];
			}
			
			if (sum % 2 != 0) {
				sb.append("NO\n");
				continue;
			}
			
			int weight = sum >> 1;
						
			Arrays.sort(array);
			
			boolean[][] grid = new boolean[array.length + 1][weight + 1];
			
			grid[0][0] = true;
			
			for (int i = 0; i < array.length + 1; i++) {
				grid[i][0] = true;	
			}

			
			for (int i = 1; i < array.length + 1; i++) {
				for (int j = 1; j < weight + 1; j++) {
					grid[i][j] = grid[i - 1][j] 
					                         || 
					                         ( (j - array[i - 1] >= 0) ? 
					                        		 grid[i-1][j - array[i - 1]] : false);
				}
			}
			
			if (grid[array.length][weight]) 
				sb.append("YES\n");
			else sb.append("NO\n");
			
		}
		System.out.print(sb.toString());
		
	}
	
}
